package engine;

import engine.StarMap;

;

public class GameStance {

	private StarMap starmap;

	/* Синглтон */
	private static GameStance instance;

	public static synchronized GameStance getInstance() {
		if (instance == null) {
			instance = new GameStance();
		}
		return instance;
	}

	private GameStance() {
	}

	/**
	 * Метод для создания карты и глобальной точки доступа к ней
	 * 
	 * @param size размер карты
	 * @param stars количество звезд на карте
	 * @param clusters количество кластеров
	 */
	public void createStarmap(int size, int stars, int clusters) {
		if (this.starmap == null) {
			if (clusters == 0) {
				this.starmap = new StarMap(size, stars);
				if (stars == 0) {
					this.starmap = new StarMap(size);
				}
			} else {
				this.starmap = new StarMap(size, stars, clusters);
			}
		} else {
			throw new CantCreateException("Невозможно пересоздать карту!");
		}
	}

	/**
	 * Извлекает карту из хранилища синглтона
	 * 
	 * @return the starmap
	 */
	public StarMap getStarmap() {
		return starmap;
	}

}
